Finding Bugs in Source Code Using Commonly Available Development Metadata
نویسندگان
چکیده
Developers and security analysts have been using static analysis for a long time to analyze programs for defects and vulnerabilities. Generally a static analysis tool is run on the source code for a given program, flagging areas of code that need to be further inspected by a human analyst. These tools tend to work fairly well – every year they find many important bugs. These tools are more impressive considering the fact that they only examine the source code, which may be very complex. Now consider the amount of data available that these tools do not analyze. There are many additional pieces of information available that would prove useful for finding bugs in code, such as a history of bug reports, a history of all changes to the code, information about committers, etc. By leveraging all this additional data, it is possible to find more bugs with less user interaction, as well as track useful metrics such as number and type of defects injected by committer. This paper provides a method for leveraging development metadata to find bugs that would otherwise be difficult to find using standard static analysis tools. We showcase two case studies that demonstrate the ability to find new vulnerabilities in large and small software projects by finding new vulnerabilities in the cpython and Roundup open source projects.
منابع مشابه
Checking Language Dependent Accuracy of Web Applications using Data Mining Techniques
Over the last decade web applications are becoming very popular. These are becoming more users oriented now days. Various languages used for the development of a web application like PHP, Java, ASP.NET etc. Development of a web application is not done by individual; it is a result of team’s efforts. Different type of bugs and errors are present in source code. Finding out these bugs or errors i...
متن کاملWYSIWIB: A Declarative Approach to Finding Protocols and Bugs in Linux Code
Although a number of approaches to finding bugs in systems code have been proposed, bugs still remain to be found. Current approaches have emphasized scalability more than usability, and as a result it is difficult to relate the results to particular patterns found in the source code and to control the tools to be able to find specific kinds of bugs. In this paper, we propose a declarative appr...
متن کاملTurning Eclipse Against Itself: Finding Bugs in Eclipse Code Using Lightweight Static Analysis
While some commonly occurring error patterns in Java are addressed by static tools such as FindBugs[5], complex software systems are full of rules that developers must follow. These application-specific rules are often not expressed in any way other than code comments and often are not enforced, leading to hard-to-detect bugs later in the program execution. Eclipse represents one of the biggest...
متن کاملRepositories with Public Data about Software Development
Empirical research on software development based on data obtained from project repositories and code forges is increasingly gaining attention in the software engineering research community. The studies in this area typically start by retrieving or monitoring some subset of data found in the repository or forge, and this data is later analyzed to find interesting patterns. However, retrieving in...
متن کاملBugalyze.com - Detecting Bugs Using Decompilation and Data Flow Analysis
Detecting bugs in programs is important to establish trusthworthy software. To achieve this, static analysis on source code is a common approach to discover bugs. However, source code is not always available, as in the case of a black box penetration test. Even if source code is available, it still remains prudent to test that compilation and link editing has not introduced new bugs into the so...
متن کامل